home *** CD-ROM | disk | FTP | other *** search
- รนรบรนรบ????????????????????????????????????????*********************************
- * *
- * SPRITES v.4.0 *
- * by *
- * JUDAS/SAINT GROUP *
- * *
- * Date:28.09.93 00:50:00 *
- * *
- * Program porusza sprite'a *
- * o dowolnej wysokosci *
- * i szerokosci 16 pikseli *
- * w trzech kolorach na *
- * krawedziach ekranu i czeka na *
- * nacisniecie lewego klawisza *
- * myszki. *
- * *
- *********************************
-
- Custom equ $dff000
- CIAAPRA equ $bfe001
-
- VHPOSR equ $006
- COP1LC equ $080
- COPJMP1 equ $088
- DIWSTRT equ $08e
- DIWSTOP equ $090
- DDFSTRT equ $092
- DDFSTOP equ $094
- DMACON equ $096
- BPL1PTH equ $0e0
- BPL1PTL equ $0e2
- BPLCON0 equ $100
- COLOR00 equ $180
- COLOR17 equ $1a2
- COLOR18 equ $1a4
- COLOR19 equ $1a6
- SPR0PTH equ $120
- SPR0PTL equ $122
- SPR1PTH equ $124
- SPR1PTL equ $126
- SPR2PTH equ $128
- SPR2PTL equ $12a
- SPR3PTH equ $12c
- SPR3PTL equ $12e
- SPR4PTH equ $130
- SPR4PTL equ $132
- SPR5PTH equ $134
- SPR5PTL equ $136
- SPR6PTH equ $138
- SPR6PTL equ $13a
- SPR7PTH equ $13c
- SPR7PTL equ $13e
-
- ***********************************************************************
- SECTION Sprites1,code_p
- ;-----------------------------------------------------------------------
- Start: movem.l d0-a7,-(sp) ;store regs
- ;-----------------------------------------------------------------------
- move.l #Screen,d0
- move.w d0,Screen_lo
- swap d0
- move.w d0,Screen_hi
- ;-----------------------------------------------------------------------
- move.l #Sprite,d0
- move.w d0,Sprite_lo
- swap d0
- move.w d0,Sprite_hi
- ;-----------------------------------------------------------------------
- lea Custom,a5
- move.l #CopperList,COP1LC(a5)
- clr.w COPJMP1(a5)
- ;-----------------------------------------------------------------------
- move.w #$8220,DMACON(a5) ;DMA sprites on
- ;-----------------------------------------------------------------------
- SpriteMove:
- bsr.w Wait_rast
-
- cmp.b #0,OrientX
- beq.b X_End
-
- RightMove:
- cmp.b #-1,OrientX
- beq.b LeftMove
- addq.b #1,PosX
- cmp.b #210,PosX
- bne.b X_End
- move.b #0,OrientX ;x off
- move.b #1,OrientY ;y down
- bra.b X_End
-
- LeftMove:
- cmp.b #0,OrientX
- beq.b X_End
- subq.b #1,PosX
- cmp.b #70,PosX
- bne.b X_End
- move.b #0,OrientX ;x off
- move.b #-1,OrientY ;y up
- bra.b Y_End
- X_End:
- cmp.b #0,OrientY
- beq.b Y_End
- DownMove:
- cmp.b #-1,OrientY
- beq.b UpMove
- addq.b #2,PosY
- addq.b #2,Height
- cmp.b #230,PosY
- bne.b Y_End
- move.b #0,OrientY ;y off
- move.b #-1,OrientX ;x left
- bra.b Y_End
- UpMove:
- cmp.b #1,OrientY
- beq.b Y_End
- subq.b #2,PosY
- subq.b #2,Height
- cmp.b #50,PosY
- bne.b Y_End
- move.b #0,OrientY ;y off
- move.b #1,OrientX ;x right
-
- Y_End:
- ;-----------------------------------------------------------------------
- MouseWait: btst #6,CIAAPRA ;wait for button
- bne.w SpriteMove
- ;-----------------------------------------------------------------------
- movem.l (sp)+,d0-a7 ;restore regs
- moveq #0,d0 ;all ok
- End: rts
- ************************************************************************
- ;-----------------------------------------------------------------------
- Wait_rast: cmp.b #$ff,VHPOSR(a5)
- bne.b Wait_rast
- rts
- ;-----------------------------------------------------------------------
- OrientX: dc.b 1 ;0=no move
- ;1=move right
- ;-1=move left
- OrientY: dc.b 0 ;0=no move
- ;1=move down
- ;-1=move up
- ************************************************************************
- SECTION Sprites2,data_c
- ;-----------------------------------------------------------------------
- Sprite:
- PosY: dc.b 50 ;y_start
- PosX: dc.b 70 ;x_start
- Height: dc.b 50+15 ;y_start+height
- dc.b $00
-
- dc.w $07c0,$0000
- dc.w $1ff0,$0000
- dc.w $3ff8,$0000
- dc.w $7ffc,$0000
- dc.w $7ffc,$0c60
- dc.w $f11e,$1010
- dc.w $f39e,$0000
- dc.w $fffe,$0000
- dc.w $fffe,$0000
- dc.w $e38e,$1830
- dc.w $783c,$0440
- dc.w $7c7c,$0380
- dc.w $3ff8,$0000
- dc.w $1ff0,$0000
- dc.w $07c0,$0000
-
- dc.w $0000,$0000 ;end sprite data
-
- ;-----------------------------------------------------------------------
- CopperList:
- dc.w DIWSTRT,$2981
- dc.w DIWSTOP,$29c1
- dc.w DDFSTRT,$0038 ;lores screen
- dc.w DDFSTOP,$00d0
- dc.w BPLCON0,$1200 ;1 plane
- dc.w COLOR00,$0000 ;ground=black
- dc.w COLOR17,$0ff0 ;red
- dc.w COLOR18,$0f00 ;green
- dc.w COLOR19,$055e ;blue
- dc.w BPL1PTH
- Screen_hi: dc.w $0000
- dc.w BPL1PTL
- Screen_lo: dc.w $0000
- dc.w SPR0PTH
- Sprite_hi: dc.w $0000
- dc.w SPR0PTL
- Sprite_lo: dc.w $0000
- dc.w SPR1PTH,$0000 ;unused sprites off
- dc.w SPR1PTL,$0000
- dc.w SPR2PTH,$0000
- dc.w SPR2PTL,$0000
- dc.w SPR3PTH,$0000
- dc.w SPR3PTL,$0000
- dc.w SPR4PTH,$0000
- dc.w SPR4PTL,$0000
- dc.w SPR5PTH,$0000
- dc.w SPR5PTL,$0000
- dc.w SPR6PTH,$0000
- dc.w SPR6PTL,$0000
- dc.w SPR7PTH,$0000
- dc.w SPR7PTL,$0000
-
- dc.w $ffff,$fffe
- ;-----------------------------------------------------------------------
- Screen: blk.b 40*256,0
-